import java.io.File;
import java.io.FileFilter;

/**
 * @ClassName Demo02_FileFilter
 * @Description TODO
 * @Author Li
 * @Date 2022/8/10 9:57
 * @ModifyDate 2022/8/10 9:57
 * @Version 1.0
 */
public class Demo02_FileFilter {
    public static void main(String[] args) {
        // 创建File对象
        File file = new File("D:\\Temp");
        // 调用递归打印目录方法
        listMenu(file);
    }

    private static void listMenu(File file) {
        // 获取子文件和目录
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                // 返回以.java结尾的文件和文件夹
                if (pathname.getName().endsWith(".java") || pathname.isDirectory()) {
                    return true;
                } else {
                    return false;
                }
            }
        });

        // 循环打印
        for (File childFile : files) {
            if (childFile.isDirectory()) {
                // 如果子目录，继续遍历，形成递归
                listMenu(childFile);
            } else {
                System.out.println(childFile.getAbsolutePath());
            }
        }
    }
}
